home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / fioben.zip / CAT.CPP next >
C/C++ Source or Header  |  1993-02-09  |  2KB  |  75 lines

  1. #include    <windows.h>
  2. #include    <stdio.h>
  3. #include    <iostream.h>
  4. #include    <iomanip.h>
  5. #include    <fstream.h>
  6. #include    <string.h>
  7.  
  8. ofstream    CERR("results.out", ios::app);
  9. int    BUFLEN = 0x10000;
  10.  
  11. ostream    & operator << (ostream & os, SYSTEMTIME & r)
  12. {
  13.     static    const char    * const rgszDayNames[] =
  14.         {
  15.         "Sunday",
  16.         "Monday",
  17.         "Tuesday",
  18.         "Wednesday",
  19.         "Thursday",
  20.         "Friday",
  21.         "Saturday",
  22.         0
  23.         };
  24.     char    chFill = os.fill();
  25.     os.fill('0');
  26.     os //--------------------------------- << rgszDayNames[r.wDayOfWeek] << ' '
  27.         << setw(2) << r.wMonth << '/'
  28.         << setw(2) << r.wDay << '/'
  29.         << setw(2) << r.wYear << ' '
  30.         << setw(2) << r.wHour << ':'
  31.         << setw(2) << r.wMinute << ':'
  32.         //------------------- << setw(2) << r.wSecond
  33.         ;
  34.     os.fill(chFill);
  35.     return    os;
  36. }
  37.  
  38. void cat(FILE *fp)
  39. {
  40.     char    szBuf[0X10000];
  41.     size_t    nRead;
  42.     while (0 != (nRead = fread(szBuf, 1, sizeof(szBuf), fp)) )
  43.         {
  44.         fwrite(szBuf, nRead, 1, stdout);
  45.         }
  46. }
  47.  
  48. int main(int argc, char **argv)
  49. {
  50.     if (argc < 2)
  51.         {
  52.         cat(stdin);
  53.         return    0;
  54.         }
  55.     //----------------------------------------------------------------
  56.     SYSTEMTIME    sNow;
  57.     GetLocalTime(&sNow);
  58.     CERR << sNow << "===> " << GetCommandLine() << endl;
  59.     //----------------------------------------------------------------
  60.     DWORD    dwStart = GetTickCount();
  61.     for (int iArg = 1; iArg < argc; iArg++)
  62.         {
  63.         FILE *fp = fopen(argv[iArg], "rb");
  64.         if (0 == fp)
  65.             continue;
  66.         cat(fp);
  67.         fclose(fp);
  68.         }
  69.     dwStart = GetTickCount( ) - dwStart;
  70.      CERR << "**** Total time: " << (dwStart / 1000)
  71.         << '.' << (dwStart % 1000) << " seconds."
  72.         << endl;
  73.     return    0;
  74. }
  75.